package com.erp.order.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.erp.order.domain.ErpHandoverOrderInfoExtend;
import com.ruoyi.common.core.annotation.ExcelDictFormat;
import com.ruoyi.common.core.convert.ExcelDictConvert;
import lombok.Data;


/**
 * 菜鸟交接单视图对象 erp_handover_order_info
 *
 * @author erp
 * @date 2023-04-24
 */
@Data
@ExcelIgnoreUnannotated
public class ErpHandoverOrderInfoVo {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private Long id;

    /**
     * 店铺在Ae的唯一id
     */
    @ExcelProperty(value = "店铺在Ae的唯一id")
    private Long sellerId;

    /**
     * cn开头主键
     */
    @ExcelProperty(value = "cn开头主键")
    private String userNick;

    /**
     * LP单号列表;LP单号列表
     */
    @ExcelProperty(value = "LP单号列表;LP单号列表")
    private String orderCodeList;

    /**
     * 子订单id列表
     */
    @ExcelProperty(value = "子订单id列表")
    private String childOrderIdList;

    /**
     * 是否跳过不允许组包的小包（包括：状态不允许组包，已经组过包，揽收仓不一致，发货方式不一致）;是否跳过不允许组包的小包（包括：状态不允许组包，已经组过包，揽收仓不一致，发货方式不一致）
     */
    @ExcelProperty(value = "是否跳过不允许组包的小包", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "包=括：状态不允许组包，已经组过包，揽收仓不一致，发货方式不一致")
    private String skipInvalidParcel;

    /**
     * 大包备注;大包备注
     */
    @ExcelProperty(value = "大包备注;大包备注")
    private String remark;

    /**
     * 交接批次号，即交接单id;交接批次号，即交接单id
     */
    @ExcelProperty(value = "交接批次号，即交接单id;交接批次号，即交接单id")
    private Long handoverContentId;

    /**
     * 交接物编码，即大包LP号;交接物编码，即大包LP号
     */
    @ExcelProperty(value = "交接物编码，即大包LP号;交接物编码，即大包LP号")
    private String handoverContentCode;

    /**
     * 面单云打印数据
     */
    @ExcelProperty(value = "面单云打印数据")
    private String printData;

    /**
     * 0-暂不可声明发货 1-待声明发货 2-已声明发货
     */
    @ExcelProperty(value = "0-暂不可声明发货 1-待声明发货 2-已声明发货")
    private Integer shipmentForTopFlag;

    /**
     * 退件地址id;退件地址id
     */
    @ExcelProperty(value = "退件地址id;退件地址id")
    private Long returnInfo;

    /**
     * 揽收地址id;揽收地址id
     */
    @ExcelProperty(value = "揽收地址id;揽收地址id")
    private Long pickupInfo;

    /**
     * 大包重量
     */
    @ExcelProperty(value = "大包重量")
    private Long weight;

    /**
     * 交接单id
     */
    @ExcelProperty(value = "交接单id")
    private Long handoverOrderId;

    /**
     * 每个商家在ISV系统的唯一标识，一般为商家ISV账号的id
     */
    @ExcelProperty(value = "每个商家在ISV系统的唯一标识，一般为商家ISV账号的id")
    private String userInfo;

    /**
     * 重量单位，克:g, 千克:kg，默认g
     */
    @ExcelProperty(value = "重量单位，克:g, 千克:kg，默认g")
    private String weightUnit;

    /**
     * 交接单类型：cainiao_pickup(菜鸟揽收)、self_post(自寄)、self_send(自送)
     */
    @ExcelProperty(value = "交接单类型：cainiao_pickup(菜鸟揽收)、self_post(自寄)、self_send(自送)")
    private String type;

    /**
     * ISV名称，ISV：ISV-ISV英文或拼音名称、商家ERP：SELLER-商家英文或拼音名称
     */
    @ExcelProperty(value = "ISV名称，ISV：ISV-ISV英文或拼音名称、商家ERP：SELLER-商家英文或拼音名称")
    private String client;

    /**
     * 多语言
     */
    @ExcelProperty(value = "多语言")
    private String locale;

    /**
     * 预约交货方式（bigbag：大包预约，batch：批次预约））
     */
    @ExcelProperty(value = "预约交货方式", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "b=igbag：大包预约，batch：批次预约")
    private String appointmentType;

    /**
     * 国内运单号（交接单类型type为self_post(自寄)时必填）
     */
    @ExcelProperty(value = "国内运单号", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "交=接单类型type为self_post(自寄)时必填")
    private String domesticTrackingNo;

    /**
     * 国内物流公司id（交接单类型type为self_post(自寄)时必填）
     */
    @ExcelProperty(value = "国内物流公司id", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "交=接单类型type为self_post(自寄)时必填")
    private String domesticLogisticsCompanyId;

    /**
     * 国内物流公司编码（交接单类型type为self_post(自寄)时必填）
     */
    @ExcelProperty(value = "国内物流公司编码", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "交=接单类型type为self_post(自寄)时必填")
    private String domesticLogisticsCompany;

    /**
     * 货好时间时间戳
     */
    @ExcelProperty(value = "货好时间时间戳")
    private Long gmtReadyToShip;

    /**
     * 托盘数量
     */
    @ExcelProperty(value = "托盘数量")
    private Long palletQuantity;

    /**
     * 容器类型(1、托盘;2、大包或盒子3、散装)
     */
    @ExcelProperty(value = "容器类型(1、托盘;2、大包或盒子3、散装)")
    private String containerType;

    /**
     * 是否预先组大包，true：是。false：否
     */
    @ExcelProperty(value = "是否预先组大包，true：是。false：否")
    private String prePackage;

    /**
     * 乐观锁
     */
    @ExcelProperty(value = "乐观锁")
    private String revision;

    private ErpHandoverOrderInfoExtend orderInfoExtend;

}
